<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>数组去重排序</title>
</head>
<body>

</body>
</html>
<script>
    Array.prototype.unique1 = function(){
        var res = [this[0]];
        for(var i = 1; i < this.length; i++){
            var repeat = false;
            for(var j = 0; j < res.length; j++){
                if(this[i] == res[j]){
                    repeat = true;
                    break;
                }
            }
            if(!repeat){
                res.push(this[i]);
            }
        }
        return res;
    };
    var arr = [1,2,1,2,12,45,12,2,0,67,45,9,8];
    console.log(arr.unique1());
    Array.prototype.unique2 = function(){
        this.sort();
        var res = [this[0]];
        for(var i = 1; i < this.length; i++){
            if(this[i]!==res[res.length - 1]){
                res.push(this[i]);
            }
        }
        return res;
    };
    var arr1 = [2,3,3,1,45,45,3,3,3,9,9,9,7,8,7,7,7];
    console.log(arr1.unique2());
    /*--------------------------------------------------
    *1.创建一个新的数组存放结果
    *2.创建一个空对象
    *3.for循环时，每次取出一个元素与对象进行对比，如果这个元素不重复，则把它存放到结果数组中，
    *同时把这个元素的内容作为对象的一个属性，并赋值为1，存入到第2步建立的对象中。
    *
    *说明：至于如何对比，就是每次从原数组中取出一个元素，然后到对象中去访问这个属性，
    * 如果能访问到值，则说明重复。
    **/
    Array.prototype.unique3 = function(){
        var res = [];
        var json = {};
        for(var i = 0; i<this.length; i++){
            if(!json[this[i]]){
                res.push(this[i]);
                json[this[i]] = 1;
            }
        }
        return res;
    };
    var arr3 = [112,112,34,'nihao','nihao ','str',34,1,22,22,1,2,6];
    console.log(arr3.unique3());
//    数组合并去重
    var arr4 = [1,2,3,4,5,6,67,7,8];
    var arr5 = [3,2,1,6,3,2,4];
    function array(a,b){
        var res = [];
        for(var i = 0;i < a.length;i++){
            res.push(a[i]);
        }
        var repeat;
        for(var i = 0; i< b.length;i++){
            repeat=false;
            for(var j = 0; j< a.length; j++){
                if(b[i] ===a[j]){
                    repeat=true;
                    break;
                }
            }
            if(!repeat){
                res.push(b[i]);
            }
        }
        return res;
    }
    console.log(array(arr4,arr5));
</script>